package com.naiterui.ehp.bs.weixin.subscribe;

import com.naiterui.ehp.bp.utils.beans.BeanUtil;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;

import java.util.ArrayList;
import java.util.List;

/**
 * 小程序订阅通知模板读取
 *
 * @author yangfuya
 * @version 1.0
 * @date 2021/5/20 18:10
 **/
@Data
public class SubscribeProperties {
    /**
     * 标签
     */
    private String label;
    /**
     * 模板id
     */
    private String templateId;
    /**
     * 模板标题 id，可通过getPubTemplateTitleList接口获取，也可登录公众号后台查看获取
     */
    private String tId;
    /**
     * 标题
     */
    private String title;
    /**
     * 开发者自行组合好的模板关键词列表，关键词顺序可以自由搭配（例如 [3,5,4] 或 [4,5,3]），最多支持5个，最少2个关键词组合
     */
    private Integer[] kidList;
    /**
     * 服务场景描述，15个字以内
     */
    private String sceneDesc;
    /**
     * 发送的内容字段
     */
    private List<Content> content;

    /**
     * 模板配置内存共享，每次发送拷贝模板内容做格式化处理
     *
     * @return
     */
    public List<Content> cloneContent() {
        List<Content> contentList = new ArrayList<>();
        BeanUtil.copyList(content, contentList, Content.class);
        return contentList;
    }

    public static class Content {
        private String key;
        private String value;

        public String getKey() {
            return key;
        }

        public void setKey(String key) {
            this.key = key;
        }

        public String getValue() {
            return value;
        }

        public void setValue(String value) {
            this.value = value;
        }

        @Override
        public String toString() {
            return ToStringBuilder.reflectionToString(this);
        }
    }
}


